Recall of previous program channel

ABSTRACT

An apparatus, program product and method for recalling a previous program channel of interest from a current program channel, where the channel of interest is determined by the amount of time a user has previously spent on the channel. The amount of elapsed time a user spends on a program channel is monitored. If the elapsed time exceeds a predetermined threshold, the program channel is identified as a channel of interest. As the user switches from the channel of interest to subsequent broadcast channels (i.e., “surfs”), the channel of interest is retained in memory as long as the amount of time spent on any subsequent channel is less than the predetermined time threshold. If the amount of time spent on a subsequent channel is greater than the predetermined time threshold, the subsequent channel is identified and stored as the new channel of interest. At any time, the user may select a selective view function to return to the channel of interest from the currently selected channel.

FIELD OF THE INVENTION

[0001] This invention is generally related to selecting a channel ofprogram information, and in particular, to switching from a currentprogram channel to a previously accessed program channel.

BACKGROUND OF THE INVENTION

[0002] As the number of available sources of broadcast programmingincreases, it becomes more and more difficult for broadcast viewers tolocate interesting program material. For example, in the early days oftelevision, a television viewer was limited to watching televisionprograms on only a few television channels, such as those of the localaffiliates of national broadcast networks such as ABC, CBS and NBC. Withsuch a limited number of programming sources, viewers were able tosimply “surf” between channels to locate interesting programs.

[0003] Due to the advent of cable and satellite television services,however, the number of channels available to television viewers hasrisen dramatically, to the point where some viewers may have access toas many as several hundred channels. With so many available channels,controls that allow the viewer to switch between channels have alsoimproved from the early days when television channels where selected byrotating a clicking dial on the television set. Today, channels aretypically selected from the comfort of a reclining chair using a remotecontrol supplied with the television or set top box. Early remotessimply allowed the user to adjust the volume and switch to the nextchannel in either the “up” or “down” direction, but as the number ofchannels grew, a need to allow for direct channel access was observedand numeric buttons where added. Today there are numerous controls tohelp the user switch between channels. Examples of these include buttonsthat allow the user to switch between and establish user defined channellists, buttons to bring up and navigate an online TV guide, and a buttonthat allows the viewer to quickly switch back and forth between twochannels.

[0004] When a viewer's show of interest is interrupted by a commercial,despite this generous collection of navigational aids, and becausechannels with a similar format are often grouped together either by theprovider or by a user defined channel list, he or she will typically usethe more primitive channel up and down buttons to “surf” other channelswhile the commercial is in progress. A problem occurs when a viewerwishes to return to his or her show of interest. To do this the viewerhas to either press the opposing up or down button the same number oftimes or enter the number for the channel of the show of interest. Manyusers often forget about the other channels they have surfed though andpress the button on the remote that allows the user to switch betweenthe current and the last channel viewed hoping to be taken directly tothe show of interest. These viewers are often annoyed when they are nottaken back to the channel of the show of interest, but to the lastchannel they surfed through. Now they must either repeatedly press thechannel up or down buttons or remember and enter the channel number toreturn to the show of interest. These users are still further annoyedwhen they find the commercial or uninteresting segment of the show ofinterest is still being broadcast and wish to return to their surfingonly to find that to return to the place they left off, they must eitherrepeatedly press the channel up or down button or remember and enter thechannel number of the point where they quit surfing. Therefore, asignificant need exists in the art for a channel control that will allowthe viewer to swap between the current surfing position and the show ofinterest so that the “territory” covered during a channel surf can beextended.

SUMMARY OF THE INVENTION

[0005] The invention addresses these and other problems associated withthe prior art by providing an apparatus, program product and method inwhich the user can switch repeatedly between the current channel and thechannel broadcasting the show of interest. Among other possibleimplementations, such a configuration permits a previous channel ofinterest to be recalled relative to another channel, which may have beenmore recently selected. Recall of previous channel based on view timemay be implemented, for example, by monitoring the viewing time for afirst television channel, switching to a second television channel anddetermining if view time exceeded a threshold, then storing firsttelevision channel as the channel of interest. After the viewer switchesthough a plurality of additional television channels to some finalchannel, remaining on none longer then the threshold period, the vieweractivates the selective view function which returns him to the lastchannel of interest, and then saves the final channel as the lastchannel of interest, so that by pressing the selective view button againthe viewer can return to the final channel and continue to “surf”.

[0006] Recall of previous channel based on view time may also utilizeadditional information to reset the channel of interest. As one example,utilizing an online program guide or clock to determine when a show onthe channel of interest has ended results in the channel of interestbeing reset. Utilizing viewer history, the channel of interest is theninitialized with a television channel that has historically been ofinterest during the current time slot. Recall of previous channel basedon view time may also utilize additional information to adjust thethreshold time for a particular television channel. As one example,utilizing an online program guide and viewer history, the threshold timeis lengthened for television channels and shows that are seldom viewed,and shortened for shows and television channels that are frequentlyviewed, thus making it harder for seldom viewed shows or televisionchannels to become the channel of interest while making it easier forthe frequently viewed channels to become the channel of interest.

[0007] These and other advantages and features, which characterize theinvention, are set forth in the claims annexed hereto and forming afurther part hereof. However, for a better understanding of theinvention, and of the advantages and objectives attained through itsuse, reference should be made to the drawings, and to the accompanyingdescriptive matter, in which there is described exemplary embodiments ofthe invention. 4

BRIEF DESCRIPTION OF THE DRAWINGS

[0008]FIG. 1 is a block diagram of a television system incorporatingrecall of the previous channel based on view time consistent with theinvention.

[0009]FIG. 2 is a block diagram of the set top box from the system ofFIG. 1.

[0010]FIG. 3 is a block diagram of a remote control used to control theset top box of FIG. 2, and containing a “Selective View” (SV) button.

[0011]FIG. 4 is a block diagram of data structures utilized by the settop box of FIG. 2.

[0012]FIGS. 5A and 5B collectively illustrate the program flow of themain routine executed by the set top box of FIG. 2 which processescommands from the remote and front panel controls.

[0013]FIGS. 6A and 6B collectively illustrate a timer routine utilizedto monitor and record the history of what has been watched and determinewhen a television show ends so the channel of interest can be updated.

DETAILED DESCRIPTION

[0014] Turning to the Drawings, wherein like numbers denote like partsthroughout the several views, FIG. 1 illustrates a television system 10incorporating recall of previous channel based on view time consistentwith the invention. System 10 includes a television or monitor 12coupled to a set top box 14 to receive audio and video signalstherefrom. System 10 also includes a remote control 15 capable ofcontrolling set top box 14 as well as other audio and video devicesincluding television or monitor 12. Set top box 14 in the illustratedimplementation is a satellite receiver capable of receiving satellitetelevision broadcast signals via a direct broadcast satellite (DBS) dish16, as well as off-air television broadcast signals via an antenna 18(or alternately, a cable provider). Also illustrated in system 10 is avideo cassette recorder (VCR) 20, coupled to receive input from set topbox 14, as well as from any additional sources, e.g., off air or cabletelevision broadcast signals (not shown separately). VCR 20 may also becapable of optionally outputting audio and video signals directly totelevision/monitor 12, rather than passing such signals through set topbox 14.

[0015] Recall of a previous channel based on the amount of view timespent on the previous channel is implemented in the illustratedimplementation within set top box 14. However, it will be appreciated bythose of ordinary skill in the art having benefit of the instantdisclosure that such functionality may be implemented in any number ofdevices capable of providing program information to a user on one of aplurality of channels, including, for example, televisions, cable settop boxes, personal video recorders, computers, VCR's, audio tuners,etc. Further, set top box 14 need not necessarily be capable of directlyreceiving and/or displaying television programs to viewers, so long asthe box is capable of monitoring a user's viewing habits and allows theselection between a plurality of programming choices. In addition,television programs may be received from any number of sources,including off-air broadcast sources, cable television sources, satellitetelevision sources, and computer network sources such as the Internet.

[0016] Now turning to FIG. 2, set top box 14 is illustrated in greaterdetail. Set top box 14 is under control of a processor 24, which isinterfaced with a memory 26 storing both program code suitable forexecution by the processor, as well as additional data structuresrequired by the processor in controlling the operation of the set topbox. Processor 24 may represent one or more processors (e.g.,microprocessors or microcontrollers), and memory 26 may represent therandom access memory (RAM) devices comprising the main storage of theset top box, as well as any supplemental levels of memory, e.g., cachememories, non-volatile or backup memories (e.g., programmable or flashmemories), read-only memories, etc. In addition, memory 26 may beconsidered to include memory storage physically located elsewhere in settop box 14, e.g., any cache memory in processor 24, as well as anystorage capacity used as a virtual memory, e.g., as stored on a massstorage device or on another data processing system coupled to set topbox 14 via an external network (not shown).

[0017] Satellite television broadcast signals are received by set topbox 14 through a satellite input 28 and decoded by a satellite signaldecoder 30. Likewise, off-air or cable television signals are receivedthrough an antenna input 32 and processed by a tuner 34. Audio and/orvideo data output by either of decoder 30 and tuner 34 are output to atelevision or video monitor through a TV output 36 driven by audio/videoamplification circuitry 38. Furthermore, user input is received from aviewer via interface 40, e.g., to receive input via front panel buttonsand/or a remote control.

[0018] Set top box 14 operates under the control of an embeddedoperating system, and executes or otherwise relies upon various softwareand/or firmware applications, components, programs, objects, modules,data structures, etc. In general, the routines executed to implement theembodiments of the invention, whether implemented as part of anoperating system or a specific application, component, program, object,module or sequence of instructions, will be referred to herein as“computer programs”, or simply “programs”. The computer programstypically comprise one or more instructions that are resident at varioustimes in various memory and storage devices in a computer, and that,when read and executed by one or more processors in a computer, causethat computer to perform the steps necessary to execute steps orelements embodying the various aspects of the invention. Moreover, whilethe invention has and hereinafter will be described in the context offully functioning computers and other programmable electronic devices,those skilled in the art will appreciate that the various embodiments ofthe invention are capable of being distributed as a program product in avariety of forms, and that the invention applies equally regardless ofthe particular type of signal bearing media used to actually carry outthe distribution. Examples of signal bearing media include but are notlimited to recordable type media such as volatile and non-volatilememory devices, floppy and other removable disks, hard disk drives,magnetic tape, optical disks (e.g., CD-ROM's, DVD's, etc.), amongothers, and transmission type media such as digital and analogcommunication links.

[0019]FIG. 3 presents a more detailed view of remote control 15. Remotecontrol 15 can utilize several different transmission mediums tocommunicate which button is being pressed to set top box 14. Examples ofthese transmission mediums include but are not limited to, Infrared (IR)and Ultra High Frequency (UHF). Pressing a button on remote control 15sends a unique signal to a receiver, which is part of the user inputinterface 40 of set top box 14. Remote control 15 is commonly theprimary interface to set top box 14. Recall of previous channel based onview time is accessed by pressing another button 42, which is labeled,by way of example, SV (Selective View).

[0020] In addition, various programs described hereinafter may beidentified based upon the application for which they are implemented ina specific embodiment of the invention. However, it should beappreciated that any particular program nomenclature that follows isused merely for convenience, and thus the invention should not belimited to use solely in any specific application identified and/orimplied by such nomenclature.

[0021] Those skilled in the art will recognize that the exemplaryenvironment illustrated in FIGS. 1 and 2 is not intended to limit thepresent invention. Indeed, those skilled in the art will recognize thatother alternative hardware and/or software environments, includingimplementations partly or wholly in hardwired logic, may be used withoutdeparting from the scope of the invention.

[0022] Recall of previous channel based on view time in the illustratedembodiment relies on a number of data structures, e.g., a historystructure 400 illustrated in FIG. 4. Table 400 resides in memory 26 andincludes a plurality of entries or records 410, each corresponding to aparticular 30-minute time slot. Each of the entries 410 may point to alinked list of television show entries 420. These entries are fortelevision shows that are typically viewed during the corresponding timeslot. Each entry 420 contains multiple fields of information, which areof interest to the present invention. Field 431 contains the title ofthe television program for which the record pertains. Field 433 containsthe channel on which the television show was viewed. Field 435 containsthe date when the television program was last viewed. Field 437 is thetotal cumulative time the viewer has spent watching this television showduring this time slot. Finally, field 439 is a pointer to the next linkin the list of records 420 that contain viewing information fortelevision shows viewed during a particular time slot. Other informationrelied on by the invention that is stored in memory 26 include the LastChannel of Interest 450 which is used to store the channel that is mostlikely to be of interest to the user when the selective view button ispressed, and switch time 455 which contains time at which the user cameto view the current channel.

[0023] It will be appreciated that alternate data structures may beutilized to store the information in table 400. Although table 400 isshown as one table keyed by times slots, those skilled in the are willappreciate that a table 400 could be allocated to each day of the weekso that viewing habits could be tracked not only by time slot, but bythe time slot on a given day, and still be in the scope of thisinvention. Likewise one table 400 could be allocated for and used onweekends while another table 400 could be allocated for and used duringweekdays. Moreover, alternate manners of identifying unique televisionshows, e.g., program identifiers, may be used in the alternative toidentify the television show in record 420.

[0024]FIGS. 5a and 5 b collectively illustrate the sequence ofoperations that occur in a main routine 500 initiated in response to thepowering on of set top box 14. Routine 500 begins in block 502 byperforming routine power on of set top box 14. Next, block 504 setsswitch time to be the current time so that decision block 529 will lateroperate correctly for the television show presented immediately afterpower on. Next, block 506 uses history structure 400 to find the showthat the viewer is most interested in during the current time slot andassign it to Last Channel of Interest 450. This determination can bemade in several ways. In this embodiment this would be determined byfinding the record 420 in the current time slot that has the largestcumulative time 437 and assign its channel 433 to the Last Channel ofInterest 450. Other examples of determining the initial program ofinterest to the user may include but are not limited to, finding theprogram that was last viewed during the time slot, or using a weightingvalue computed from both 435 and 437 such that the longer ago that theprogram was viewed the less weight the cumulative time 437 wouldprovide.

[0025] Continuing on, block 508 starts the Timer Task collectivelyillustrated in FIGS. 6a and 6 b. This task is not called, but spawned asa process or thread that will now run in parallel to routine 500. Block508 does not wait for Timer Task 600 to complete, so control continuesto block 510. Block 510 receives events from User Input Interface 40.Pressing buttons on remote control 15 or controls on the front panel ofset top box 14 generates these events. Next, block 512 tests to see ifthe event is an event that requires the current channel to be switched.Examples of such events include but are not limited to, pressing thechannel up or down button on the remote, entering the channel number todirectly navigate to the channel, or even pressing a special button totake to a particular channel such as a previous channel recall or even amemory button designated for a particular channel. If the event is suchan event then control proceeds to decision block 522 where it isdetermined if the current show is a favorite show. This determination isdone in a similar manner to that which step 506 utilizes. In thisembodiment, the determination would be done by looking at HistoryStructure 400 and determining if the show is the show with the highestcumulative view time 437 for the current time slot. Though as with block506 those skilled in the art will appreciate that other ways ofdetermining if the show is a favorite show can be utilized and fallwithin the scope of this invention. If the block 522 determines that thecurrent show is a favorite show, the control is directed to block 525where threshold is set to be a shorter than normal threshold. Thisthreshold denotes the amount of time a viewer must view a show, withoutswitching channels, for the channel broadcasting it to be assigned tothe Last Channel of Interest 450. The result of making this time shorteris to make it easier for the current channel to be assigned to the LastChannel of Interest 450. If at 522 the current show was not found to bea favorite show, then control proceeds to block 524 where all thehistory records are examined to see if there is any record of thecurrent show ever being viewed. If the current show has no historyrecords, the control proceeds to block 526 where the threshold isassigned a longer threshold value. The result is that the viewer wouldhave to view this show longer than normal for the channel broadcastingit to be assigned to the Last Channel of Interest 450. In the case thata record of the show being viewed is found at block 524 then controlproceeds to block 528 where a normal value is assigned to threshold.

[0026] Once the value for threshold has been established in any ofblocks 525,526, or 528, control proceeds to block 529 where thethreshold value is compared with the amount of time the viewer has beenviewing the current show. This is done by taking the current time andsubtracting the time that the user switched to the current channel. Whena new show begins, routine 600 resets Switch Time 455 to be the timewhen the show starts to be broadcast. If the user has been watching theshow long enough when they switch channels, then decision block 529 willbe answered affirmatively and control will proceed to block 532 whereSwitch Time 455 will be set to the current time. Next, block 535 assignsthe current channel to the Last Channel of Interest 450. If decisionblock 529 is answered negatively, control proceeds to block 531 whereSwitch Time 455 is assigned the current time, and then from either block531 or 535, control proceeds to block 537 where the channel is switchedto the selected or new channel. From block 537, control loops back toblock 510 which waits for the next event to be generated.

[0027] When the user presses SV button 42 on remote 15, a signal is sentto User Input Interface 40 which generates a selective view buttonpressed event which is returned at block 510. Control then proceeds from510 to 512, where it is determined whether a switch channel event hasoccurred. In this instance, the answer is negative, and controlcontinues to block 514. Block 514 checks to see if the event is aselective view button pressed event. Since it is, control proceeds toblock 516. This block retrieves the value from Last Channel of Interest450 and saves it temporarily. Next, 518 assigns the current channel toLast Channel of Interest 450. Then block 520 changes channels so thecurrent channel becomes the value temporarily saved in block 516, andcontrol loops back to 510 to wait for the next event. If neitherdecision blocks 512 or 514 are answer affirmatively, then the event isfor a function outside of the scope of this invention and as a result,control flows to block 538 where all such events are handled just asthey are in existing set top boxes.

[0028] Referring now to FIGS. 6a and 6 b, the purpose of the Timer Taskroutine 600 is to gather history information related to which televisionshows are watched most during a given time slot, maintain and cleanupold records in History Structure 400, determine when a new televisionshow begins, and set Last Channel of Interest 450 and Switch Time 455for a new television show and time slot. Routine 600 runs as its ownprocess or thread in parallel or at the same time as routine 500.Routine 600 starts at block 602 where local variable Past Channel is setto a channel value such as “000” which will make it impossible fordecision block 606 to be answered positively the first time through.Control then proceeds to block 603 where another local variable PastShow is cleared. Next control proceeds to decision block 606 whichdetermines if the past channel and the current channel are still equal.If they are not equal, decision block 606 answers negatively and controlproceeds to decision block 608.

[0029] Decision block 608 determines if it is time to do garbagecollection. There are a number of heuristic schemes that can be used todetermine when to perform garbage collection. In the illustratedembodiment this determination would be based on the amount of time thathas passed since the last collection was run and the amount of memoryavailable, such that if the amount of available memory were below somethreshold, the garbage collector would be run, but other schemes couldalso be used such as counting the number of new records created andrunning the garbage collector after some number of new records 420 havebeen added to History Structure 400. Still another example would be torun the garbage collector once at the start of each month. Assuming 608determines that it is time to run the garbage collector, controlcontinues to block 610. Block 610 scans the History Structure 400looking for records 420 with a last viewed date value 435 that is olderthan some threshold. A possible value for this threshold could be onemonth. If the television show represented by a particular record 400 hasnot been viewed for within the threshold period the record is removedfrom the history structure and its storage is reclaimed.

[0030] From block 610 or if decision block 608 is answered negativelycontrol proceeds to block 611 where the local variables Past Channel andPast Show are set to the current channel and current show respectively.From 611 control proceeds to block 613 where the routine waits for somepredetermined amount of time to pass before it resumes. Though the exactamount of time that block 613 delays processing is not critical to theinvention, a reasonable amount of time would be 10 seconds. Once thistime is up control proceeds from block 613 back to decision block 606.

[0031] Referring again to decision block 606, block 606 tests to see ifthe current channel being viewed and the value contained in the localvariable Past Channel are the same. If the viewer had switched channelswhile routine 600 was waiting at block 613, they would not be the same,but for the purpose of explanation we will assume that the viewer hasnot changed channels since we last executed block 611 and as suchdecision block 606 will answer affirmatively. Control now proceeds todecision block 622 which checks if the current show has not changed. IfCurrent Show equals Past Show, then the same show is still being airedand control proceeds to block 615 which checks History Structure 400 fora record 420 that exists in the linked list for the time slot 410 forthe current time, which relates to the current show. If such a record isnot found, decision block 615 answers negatively and control proceeds toblock 617 which adds a record 420 for the current television show to thelinked list that anchored in the time slot 410 which relates to thecurrent time. From block 617 or if decision block 615 is answeredaffirmatively, control proceeds to block 619 which accesses the record420 associated with the current time slot 410 and updates the cumulativetime field 437 by adding the time that routine 600 waited at block 613to the value in field 437, then stores this result back in field 437.Next, control passes to block 621 where the linked list associated withthe current time slot 410 is sorted so that the record 420 with thelargest cumulative time 437 is put first in the list. Next controlproceeds to block 611 and from there to block 613 where routine 600 onceagain waits.

[0032] Referring again to decision block 622, if it is found that thecurrent show is not the same as the show saved in the local variablePast Show and thus a new show is being broadcast, decision block 622will answer negatively and control proceeds to block 623. Block 623accesses History Structure 400, and checks the time slot 410 associatedwith the current time to find the channel that is associated with therecord 420 for the television show that will be most interesting to theuser. As discussed with block 506 there are several heuristics thatcould be used to determine which show will be the most interesting tothe user. In the illustrative embodiment we would look for the record420 with the largest cumulative time 437. In an alternate embodiment,the last view time field 435 can be expanded to include a time stamp aswell as a date. This expanded last view time field 435 can then examinedto identify the record of the show that was most recently watched at thecurrent time slot. In yet another embodiment, an algorithm considers thevalues in 437 and 435 concurrently to determine which record 420represents the show that is most likely to be of interest to the viewer.If it is determined that there are no shows in the current time slot 410of interest, then the channel found is set to the current channel.

[0033] Next, block 625 assigns the channel found in 623 to The LastChannel of Interest 450. Next, block 625 sets Switch Time 455 to be thecurrent time so the channel broadcasting the new show is not given extracredit towards being assigned to The Last Channel of Interest 450.Control now proceeds back to block 611 after which control proceeds toblock 613 where routine 600 once again waits.

We claim:
 1. A method for recalling a previous channel of programminginformation comprising the steps of: initializing a channel of interest;selecting a first channel of program information; monitoring an elapsedtime spent on the first channel; identifying and storing the firstchannel as the channel of interest if the elapsed time spent on thefirst channel exceeds a predetermined time threshold; switching to aplurality of additional channels, wherein the elapsed time spent on theadditional channels does not exceed the predetermined time threshold;and activating a selective view function to return to the channel ofinterest from one of the plurality of additional channels.
 2. The methodfor recalling a previous channel of programming information as recitedin claim 1, wherein the step of switching to a plurality of additionalchannels further includes the step of storing one of the additionalchannels as the channel of interest, if the amount of time spent on theone channel exceeds the predetermined time threshold.
 3. The method forrecalling a previous channel of programming information as recited inclaim 1, wherein the method further includes the step of storing the oneof the plurality of additional channels as the channel of interest uponactivation of the selective view function.
 4. The method for recalling aprevious channel of programming information as recited in claim 1,wherein the method further includes the step of storing historicalchannel access information in a channel history log.
 5. The method forrecalling a previous channel of programming information as recited inclaim 4, wherein the method further includes the step of resetting thechannel of interest upon the completion of a program on the channel ofinterest.
 6. The method for recalling a previous channel of programminginformation as recited in claim 5, wherein the step of resetting thechannel of interest upon completion of a program further includes thestep of storing a program channel of historical interest as identifiedby the channel history log as the program of interest.
 7. The method forrecalling a previous channel of programming information as recited inclaim 6, wherein the step of identifying the first channel as a channelof interest if the elapsed time spent on the first channel exceeds apredetermined time threshold further includes the step of lengtheningthe predetermined time threshold if the first channel is broadcasting aseldom viewed program as determined by the channel history log.
 8. Themethod for recalling a previous channel of programming information asrecited in claim 6, wherein the step of identifying the first channel asa channel of interest if the elapsed time spent on the first channelexceeds a predetermined time threshold further includes the step ofshortening the predetermined time threshold if the first channel isbroadcasting a frequently viewed program as determined by the channelhistory log.
 9. The method for recalling a previous channel ofprogramming information as recited in claim 6, wherein the step ofinitializing a channel of interest includes the step of storing aprogram that has historically been of interest in the current time slotas the channel of interest.
 10. The method for recalling a previouschannel of programming information as recited in claim 6, wherein themethod of initializing a channel of interest includes the step ofstoring the channel that was last accessed during the time slot as thechannel of interest.
 11. A channel selection apparatus for recalling apreviously accessed channel of interest, comprising: a receiver capableof receiving a plurality of channels of broadcast material and a usergenerated channel selection signal, wherein the channel selection signalselects one of the plurality of channels of broadcast material, thereceiver further comprising: a memory; and a program resident in thememory, the program configured to measure the elapsed time spent on aselected channel; store the selected channel as a channel of interest ifthe selected channel exceeds a predetermined time threshold; and switchto the channel of interest from the currently selected channel uponreceipt of a channel recall signal from a selective view function. 12.The channel selection apparatus as recited in claim 11, wherein theprogram is further configured to store a program guide for trackingstart and stop times of programming material currently being broadcaston the plurality of channels.
 13. The channel selection apparatus asrecited in claim 13, wherein the program is further configured to storea user history of program material accessed by a user over apredetermined time period.
 14. The channel selection apparatus asrecited in claim 13, wherein the program is further configured toreplace the channel of interest with a new channel that has historicallybeen of interest in the current time slot, if the program guideindicates that the program on the current channel of interest has ended.15. The channel selection apparatus as recited in claim 13, wherein theprogram is further configured to initially set the channel of interestto a channel that has historically been of interest in the current timeslot, as determined by the user history.
 16. The channel selectionapparatus as recited in claim 13, wherein the program is configured tolengthen the predetermined time threshold if the selected channel is aseldom viewed program as determined from the user history.
 17. Thechannel selection apparatus as recited in claim 13, wherein the programis configured to shorten the predetermined time threshold if theselected channel is a frequently viewed program as determined from theuser history.
 18. A program product, comprising: a program configured tomeasure an elapsed time spent on a selected channel, store the selectedchannel as a channel of interest if the selected channel exceeds apredetermined time threshold, and switch to the channel of interest froma currently selected channel upon receipt of a channel recall signal;and a signal bearing medium bearing the program.
 19. The program productof claim 18, wherein the signal bearing medium includes at least one ofa transmission medium and a recordable medium.